<?php

/**
*   N e w s 
*
**/

function news_zeigen_admin () {
	if (!isset($_GET['k'])) {
		// Seitenwechsel ausgeben - 5 pro Seite
		$newsProSeite = 5;
		newsSeitenwechsel($newsProSeite);
		// News Ausgeben
		
		global $news;
		global $startPosition;
		
		$token = md5(uniqid(rand(), true));
		$_SESSION['token'] = $token;
		$setNews = "";
		$i = 0;
		if (!isset($startPosition)) $start = 0;
		else $start = $startPosition;
		for($k=$start; $k<$start+$newsProSeite;$k++) {	
			if ($k < count($news)) {
				list ($id, $benutzerId, $titel, $text, $datum) = explode("\t", $news[$k]);
				$autor = userWertSuchen($benutzerId);
				$titel = trim($titel);
				if (empty($titel)) $titel = ADMIN_BACKEND_NOTITLE;
				$id = trim($id);
				$titel = "<a href='?admin=news&amp;einstellen=$id&amp;Anfangsposition=$start'>$titel</a>";
				$komsize = komsize($id);
				if ($komsize > 0) $komsize = "<a href='index.php?admin=news&amp;einstellen=kommentareLoeschen&amp;k=$id&amp;Anfangsposition=$start'>$komsize</a>";
				else $komsize = "0";
				$datum = formatiereDatum($datum);				
				$setNews[$i] = array ('titel'=>$titel,'komsize'=>$komsize,'date'=>$datum,'autor'=>$autor,'id'=>$id);
				$i++;
			}
		}				
				
		$tmp = new Template(templateUrl.'admin_news_zeigen.tpl');
		$tmp->setContent('token',$token);
		$tmp->setContent('NEWS', $setNews);
		echo $tmp->vorlage;
	}
}

// Stellt das Forumlar zum newseintragen zur Vervügung. Das Datum wird mit dem 
// aktuellen Tagesdatum vorbelegt und der Autor mit dem Loginnamen
// Es wird mit Javascript getestet ob alle Pflichtfelder ausgefüllt sind
function news_schreiben() {
	global $config;
	$token = md5(uniqid(rand(), true));
	$_SESSION['token'] = $token;
	$vars = array('smilieList(T)'  =>  smilieList(true),
				  'newsDir'        =>  newsOrdner,
				  'token'          =>  $token);
	require($config);
	if ($editor == "WYSIWYG") {
		$tmpWYSIWYG = new Template(templateUrl."admin_news_schreiben_WYSIWYG.tpl");
		$tmpWYSIWYG->setContent($vars);
		echo $tmpWYSIWYG->vorlage;
	} else {
		$tmpLFBB = new Template(templateUrl."admin_news_schreiben.tpl");
		$tmpLFBB->setContent($vars);
		echo $tmpLFBB->vorlage;
	}
}


// Bei jedem neuem Newseintrag wird die ID hochgezählt damit sie einzigartig sind!
// Es werden zuerst alle News in eine Variable gepackt dann packen 
// Wir unser neues Kommentar rein und hängen die Variable wo alle anderen Kommentare drinn stehen ran
function news_speichern() {
	global $news , $BenutzerDatenbank,$benutzerSId;
	if (isset($_POST['newssenden']) || isset($_POST['newsSendenBearbeiten'])) {
		if(empty($_POST['token']) || $_POST['token'] != $_SESSION['token']) die;
		$a = 0;
		// Variablen setzen
		if (isset($_POST['titel']))     $titel      = clearInput($_POST['titel']);
		if (isset($_POST['text']))      $text       = clearInput($_POST['text']);
		if (isset($_POST['avatar']))    $avatar     = htmlentities($_POST['avatar']);
		if (isset($_POST['kommentare']))$kommentare = htmlentities($_POST['kommentare']);
		if (isset($_POST['id']))        $id         = htmlentities($_POST['id']);
			
		if (isset($_POST['newsSendenBearbeiten'])) {
			newsValidieren($id,$titel,$text,$avatar);
			foreach ($news as $line) {
				list ($idD, $benutzerIdD, $titelD, $textD, $datumD, $komD, $avatarD) = explode("\t", $line);
				if ($idD == $id) {
					if (empty($titel)) $titel = ADMIN_BACKEND_NOTITLE;
					$news[$a] = $idD."\t"
								.$benutzerIdD."\t"
								.$titel."\t"
								.$text."\t"
								.$datumD."\t"
								.$komD."\t"
								.$avatar."\n";
					dateiSpeichern(dataUrl."news.dat",implode("",$news),"w");
					$news = datenbankfileNeuLesen("news");
					break;
				}
				++$a;
			}
		} else {
			newsValidieren("neu",$titel,$text,$avatar,$kommentare);
			$datum = date("D, d M y H:i:s O");
			$all   = "";
			if (isset($news[$a])) {
				$letzerEintrag = $news[$a];
				list ($newsid) = explode("\t", $letzerEintrag);
				$newsid++;
			} else $newsid = 1;
			foreach ($news as $line) $all .= $line;			
			$text  = shortWords($text, $length = 100);		
			$all = $newsid."\t"
					.$benutzerSId."\t"
					.$titel."\t"
					.$text ."\t"
					.$datum."\t"
					.$kommentare."\t"
					.$avatar."\n"
					.$all;
			$all = trim(chop($all));
			dateiSpeichern(dataUrl."news.dat",$all,"w");
			$news = datenbankfileNeuLesen("news");
		}
		unset($_SESSION['token']);
	} 
}

function news_bearbeiten ($einstellen) {
	global $news;
	global $BenutzerDatenbank;
	global $config;
	global $startPosition;
	
	if (isset($einstellen)) {
		$anzid = $einstellen;
		if (isset($anzid)) {
			if (count($news) > 0) { 
				$token = md5(uniqid(rand(), true));
				$_SESSION['token'] = $token;
				foreach ($news as $line) {
					list ($id, $benutzerId, $titel, $text, $datum, $kom, $avatar) = explode("\t", $line);
					$autor = userWertSuchen($benutzerId);
					$mail  = userWertSuchen($benutzerId,"mail");
					$avatar = string2bool($avatar);
					if ($anzid != $id) continue;
					if ($avatar) {
						$ifAvaT = "checked='checked'";
						$ifAvaF = "";						
					} else {
						$ifAvaF = "checked='checked'";
						$ifAvaT = "";
					}
					$vars = array('start'          =>  $startPosition,
								  'smilieList(T)'  =>  smilieList(true),
								  'newsDir'        =>  newsOrdner,
								  'text'           =>  preg_replace("(<br./>)","\n",$text),
								  'id'             =>  $einstellen,
								  'autor'          =>  $autor,
								  'titel'          =>  $titel,
								  'datum'          =>  $datum,	
								  'ifAvaT'         =>  $ifAvaT,
								  'ifAvaF'         =>  $ifAvaF,
								  'mail'           =>  $mail,
								  'token'          =>  $token);
					require($config);
					if ($editor == "WYSIWYG") {
						$tmpWYSIWYG = new Template(templateUrl."admin_news_bearbeiten_WYSIWYG.tpl");
						$tmpWYSIWYG->setContent($vars);
						echo $tmpWYSIWYG->vorlage;
					} else {
						$tmpLFBB = new Template(templateUrl."admin_news_bearbeiten.tpl");
						$tmpLFBB->setContent($vars);
						echo $tmpLFBB->vorlage;
					}
				}
			}
		}
	}
}

// Löscht  einen Vorher makiertten Newseintrag
function news_loeschen() {
	global $news;
	global $newsKom;
	if (isset($_POST['newsloeschensenden'])) {
		$a=0;
		$b=0;
		$gefunden=false;
		if( empty($_POST['token']) || $_POST['token'] != $_SESSION['token'] ) die;
		if (count($news)!=0) {
			foreach ($news as $line) {
				list ($id) = explode("\t", $line);
				if (isset($_POST['id'])) {
					if ($id == trim($_POST['id'])) {
						$gefunden=true;
						unset($news[$a]); 
						dateiSpeichern(dataUrl."news.dat",implode("",$news),"w");
						$news = datenbankfileNeuLesen("news");
						// Die dazugehörigen Kommentare löschen
						foreach ($newsKom as $linekom) {
							list ($id) = explode("\t", $linekom);
							if ($id == trim($_POST['id'])) { 
								unset($newsKom[$b]); 
								dateiSpeichern(dataUrl."newsKom.dat",implode("",$newsKom),"w");
								$newsKom = datenbankfileNeuLesen("newsKom");
							}
							$b++;
						}
					}
				}
				$a++;
			}
		}
		if (!$gefunden) header("Location: index.php?admin=news&meldung=20");
		unset($_SESSION['token']);
	}	
}

function newsValidieren($herkunft,$titel,$text,$avatar,$kommentare="") {
	while (!isset($link)) {
		$link = "OK";
		if ($kommentare != "") { if (!checkBool($kommentare)) $link = "14"; }
		if (!checkBool($avatar))                              $link = "14"; 
		if (!checkString($text,"max",5000))                   $link = "30";
		if (!checkString($titel,"max",50))                    $link = "29";
	}
	if ($link != "OK") {
		header("Location: index.php?admin=news&einstellen=$herkunft&meldung=$link");
		die (ADMIN_BACKEND_ERROR);
	} else 	return true;
}


?>
